/**
 * 公共事件
 */

/**
 * 数字转人民币
 * 例：123.45 -> 壹佰贰拾叁元肆角伍分
 */
const n2c = (str) => {
  let num = parseFloat(str);
  let strOutput = '';
  let strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分';
  num += '00';
  const intPos = num.indexOf('.');  
  if (intPos >= 0){
      num = num.substring(0, intPos) + num.substr(intPos + 1, 2);
  }
  strUnit = strUnit.substr(strUnit.length - num.length);
  for (let i = 0; i < num.length; i += 1){
      strOutput += '零壹贰叁肆伍陆柒捌玖'.substr(num.substr(i,1),1) + strUnit.substr(i,1);
  }
  return strOutput.replace(/零角零分$/, '整').replace(/零[仟佰拾]/g, '零').replace(/零{2,}/g, '零').replace(/零([亿|万])/g, '$1').replace(/零+元/, '元').replace(/亿零{0,3}万/, '亿').replace(/^元/, '零元');
};


/**
 * 数字添加逗号（千分位）
 * fixed 保留多少位小数，默认2，
 * type === 1 加 千分号
 */
const numAddComma = (value, fixed = 0, type = 0) => {
  let amt = Number(value);
  if (!amt && amt !== 0) {
    return value;
  }

  amt = amt.toFixed(fixed || 0);
  if (type === 1) return amt.replace(/\B(?=(?:\d{3})+(?!\d))/g, ',');
  return amt;
};

export default {
  n2c,
  numAddComma,
}
